home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / UTILREEN / BITFNT38.LZH / BITFNT38.DOC next >
Text File  |  1988-06-02  |  25KB  |  482 lines

  1. BITFNT38, Copyright 1988 by Bruce J. Patin. All rights reserved.
  2. This DOC file and the associated EXE and BFC files may be freely
  3. distributed.
  4.  
  5. Bitfont is a program which can be used to design or modify fonts of
  6. bit-mapped characters.  Using a configuration file as a template,
  7. font files for a wide variety of printers and graphics programs
  8. can be read in, modified by Bitfont, then written out to a new file.
  9. Bitfont itself has graphics capabilities to display characters
  10. with either discrete or overlapping dots, and there are many
  11. menu-driven functions which can be used to quickly modify entire
  12. fonts.
  13.  
  14. A configuration file must be created for each font file format,
  15. using what is actually a simple programming language.
  16. The rules of this programming language are given later on in this
  17. document.  A sample configuration file is HPLAJET2.BFC,
  18. which can be used to read and write fonts compatible with the
  19. Hewlett Packard LaserJet II printer.
  20. Another sample file is NLQDRAFT.BFC, which can be used with the
  21. NLQ printer, which is supposed to be compatible with the Epson FX-85.
  22.  
  23. It is possible to design and save individual characters without
  24. a configuration file, by writing the bit pattern to the file in hex
  25. or in the form of a matrix of 1's and 0's or X's and spaces.
  26. The desired form can be selected from the Save or Load displays.
  27.  
  28. To execute Bitfont, simply type in the name of the EXE file, BITFNT38.EXE.
  29. If there is a configuration file by the name of BITFONT.BFC in the
  30. current directory, this will automatically be loaded.
  31. If not, you will need to select CF on the Parameter Display to
  32. specify and load in a configuration file in order to read and write
  33. fonts.  When you select a configuration file to be loaded, BITFNT38
  34. will read it in, condense it, write it to the current directory as
  35. BITFONT.BFC, and then reread it from BITFONT.BFC in its condensed form.
  36. This makes future invocations of BITFNT38 faster.
  37.  
  38. The menus of the Bitfont program should be self-explanatory, with
  39. possibly a little experimentation.  Mouse support for the design screen
  40. has not yet been implemented, but should be unnecessary for most
  41. purposes, since the cursor keys and surrounding keys and menu commands
  42. are very effectively implemented for the purpose of designing characters.
  43.  
  44. Bitfont has been written in Turbo Pascal 4.0.
  45. The source code is available for $120.
  46. For answers to any questions or a copy of the source code, send a note
  47. to:
  48.  
  49. Bruce J. Patin
  50. 4225 N. Henderson Drive #101
  51. Arlington, VA 22203
  52.  
  53. Sorry, I do not accept phone calls.
  54.  
  55. *************************************************************************
  56.  
  57. I/O Configuration File:
  58.  
  59.     This file is composed of entries for each field of the font file.
  60.     Each configuration entry is composed of one or more subfields,
  61.     separated by commas. The configuration entry is ended by a semicolon.
  62.     The entire set of configuration entries is ended by a period.
  63.     There may be more than one set of configurations in a file.
  64.     They are identified by an ID and Name in the Start Config entry.
  65.  
  66.     The first subfield is the Type and optional Modifier.
  67.     Other possible subfields are Termination, Termchar, Length, Start,
  68.     Varid, Name, String, all explained as follows.
  69.     Note that the format of an entry may vary, depending on
  70.     whether it is used for input (load) or output (save).
  71.  
  72.     Comments and whitespace may be included anywhere in the
  73.     configuration file.  Comments must be enclosed in curly brackets.
  74.     If the very first character is an asterisk (*), then it is
  75.     assumed that the whitespace and comments are removed (compacted).
  76.     When a configuration file is first loaded in, it is automatically
  77.     saved in bitfont.bfc in the compacted form, so that next time
  78.     bitfont is started, the most recent configuration loaded will be
  79.     quickly and efficiently loaded automatically.
  80.  
  81. *************************************************************************
  82.  
  83. The format of each entry in the configuration file is given as follows
  84. in parentheses, according to the type of entry.
  85. (Do not include the parentheses when actually coding the configuration.)
  86. In general, the entry type is indicated by the first character in the
  87. entry.
  88.  
  89. Section Types: (in the order in which they should be used)
  90.   N - start configuration set initialization. (N:Name;)
  91.       Only assignments (types A,T,X) may occur between N and E.
  92.   E - end initialization section.
  93.   KI - start input font header.
  94.   EI - end input font header.
  95.   L1 - label 1 (see below for labels) to indicate start of character.
  96.   ESL - end character search, character loaded.
  97.         (ignored if loading entire font)
  98.   KT - start input font trailer.
  99.   ET - end input font trailer.
  100.   KS - start character search program, to search for an input character.
  101.        This is needed for loading in a selected character only.
  102.        Routine here should contain a jump to L1.
  103.   ESU - end character search program (unsuccessful search)
  104.   KO - start output font header.
  105.   EO - end output font header.
  106.   KC - start output character, for when character is being appended.
  107.   EC - end output character.
  108.   KZ - start output font trailer.
  109.   EZ - end output font trailer.
  110.   KP - start download.
  111.   EP - stop download.
  112.   . - a period after the last semicolon ends the configuration set.
  113.  
  114. Diagnostic types:
  115.   #  -  (#:Varid,Message;) sends Message and value of Varid to terminal.
  116.   #R -  Same as #, but waits for you to hit return.
  117.   #A -  Sends Message and waits for you to enter a value to assign to Varid.
  118.   $  -  Same as #, except any value is displayed and entered in hex.
  119.         (the value is limited to FF, one byte's worth)
  120.  
  121. Branching types:
  122.   Zn -  Set length limit.
  123.        (Zn:Length;) Length is a value expression.
  124.        After each configuration entry, the number of bytes read from
  125.        the font input file is checked, and a skip to label n is done
  126.        if the number of bytes transferred from the font file, after Zn,
  127.        is equal to or greater than Length, at which time the length
  128.        limitation is reset.
  129.   R  - Reset length limit;
  130.   Ln - label n. n is a decimal number, maximum value of 99.
  131.   Jn - Jump on condition to label n.
  132.        n may be a value expression, allowing for a "computed goto".
  133.        (Jn:Value1,Operator,Value2;)
  134.        Operator may be:
  135.        GT - Greater than.
  136.        LT - Less than.
  137.        EQ - Equal to.
  138.        GE - Greater than or equal to.
  139.        LE - Less than or equal to.
  140.        NE - Not equal to.
  141.  
  142. Assignment types:
  143.   A - Assignment only. (A:Varid=Value,Name;)
  144.       A maximum of 128 variables, including predetermined can be assigned.
  145.   T - Assignment of a string of text characters to a variable.
  146.       There may be a maximum of 8 of these.
  147.       The Text must be enclosed in double quotes.
  148.       (T:Varid=Text,Name;)
  149.   X - Assignment of an optional variable for which each character
  150.       descriptor has its own value. (X:Varid=Value,Name;)
  151.       There may be a maximum of 6 of these, none of which may be strings.
  152.       All variables of this type must be assigned with X before they
  153.       can be used elsewhere.
  154.   P - Position input font file at Value position. (P:Value;)
  155.  
  156.   C - Code select (C;); used only during save operations.
  157.       This selects the variables and data for the character having
  158.       a code equal to the previously set value of CC.
  159.       If CC is not a valid code, then the next higher code is selected.
  160.       If there is no valid higher code, CC is set to 0.
  161.  
  162.   G - the character bit data string. (G:Start,Length;)
  163.       Start and Length are optional Value expressions.
  164.       The default is the entire string, of length calculated
  165.       using the currently assigned width, height and data format.
  166.       For counting purposes, the first data byte is byte 0.
  167.       'G' may have an optional modifier 'H', 'D' or 'B' to indicate that
  168.       bytes are expressed in hex, decimal, or binary, and the additional
  169.       submodifier 'S' may be used to indicate that the hi and lo order
  170.       bytes of each pair of bytes is to be swapped.
  171.  
  172.       If modifiers H or B are selected for load, all non-hex or non-binary
  173.       characters are ignored.  For a save operation, the hex or binary
  174.       digits are not separated from each other in any way.
  175.  
  176.       If modifier D is selected, all characters are ignored during load except
  177.       for decimal values, which are each expected to represent a value of
  178.       one byte of data, and are each separated by any non-decimal
  179.       character.  During save, each byte value is separated by a space.
  180.       If it is desired to write commas instead of spaces between bytes,
  181.       use modifier C in place of D.
  182.  
  183.       For load operations, Type G saves the string into a data area
  184.       constructed according to the previously set character values
  185.       for the character code specified in the previously set CC Varid.
  186.       Also, any previously set values of character variables are
  187.       associated with that data area.
  188.       For save operations, Type G or saves the string for the character
  189.       which has been previously selected by a code select, Type C.
  190.  
  191.   The following entry types are as used in input (load) operations.
  192.   The type corresponds to data from the font file.
  193.  
  194.   S - Signed byte.     (S:Varid,Name;)
  195.   U - Unsigned byte.   (U:Varid,Name;)
  196.   I - Integer (signed 2-bytes)  (I:Varid,Name;)
  197.   W - Word (unsigned 2-bytes)   (W:Varid,Name;)
  198.   Hn - Hexadecimal characters. (Hn:Varid,Name;)
  199.       Characters are skipped until a hexadecimal character is encountered.
  200.       The number is ended when a non-hexadecimal character is encountered,
  201.       or when a maximum of n hexadecimal characters is read.
  202.       Submodifier S may be used in place of n, in which case the
  203.       maximum number of characters read is set to 4.
  204.       n should not be greater than 4, the default.
  205.   Bn - Binary characters.   (Bn:Varid,Name;)
  206.       Any characters are skipped until a 1 or 0 character is found.
  207.       The number is ended when a character other than a 1 or 0 is
  208.       encountered, or when a maximum of n binary characters is read.
  209.       Submodifier S may be used in place of n, in which case the
  210.       maximum number of characters read is set to 16.
  211.       n should not be greater than 16, the default.
  212.   Dn - Decimal characters. (Dn:Varid,Name;)
  213.       Characters are skipped until a decimal character is encountered.
  214.       The number is ended when a non-decimal character is encountered,
  215.       or when a maximum of n decimal characters are read.
  216.       n should not be greater than 8, the default.
  217.   Q - Text character(s). A string of characters is read until terminated
  218.        by a termination character or a length.  Both may be specified,
  219.        in which case, the string is ended whichever occurs first.
  220.        (Q:Varid,Termchar,Length,Name;).
  221.        Termchar is specified in hex, preceded by a dollar sign.
  222.        If not given, code the comma.  The default is $1b (Escape).
  223.        Length is a value expression. If not given, code the comma.
  224.        The maximum and default for length is 127.
  225.        The resulting string does not include the Termchar, which will
  226.        be the next byte read by the next configuration entry.
  227.  
  228. The following entry types are as used in output (save) operations.
  229. The type corresponds to data as it will be put into the font file.
  230.  
  231.   S - Signed byte.     (S:Value;)
  232.   U - Unsigned byte.   (U:Value;)
  233.   I - Integer (signed 2-bytes)  (I:Value;)
  234.   W - Word (unsigned 2-bytes)   (W:Value;)
  235.   Hn - Hexadecimal characters. (Hn:Value;)
  236.       Value is converted and saved into the font file as a string of
  237.       hex characters, until n number of characters or a maximum
  238.       of 4 hex characters is reached.
  239.   Bn - Binary characters.   (Bn:Value;)
  240.       Value is converted and saved into the font file as a string of
  241.       0 and 1 characters, until n number of characters or a maximum
  242.       of 16 binary characters is reached.
  243.   D - Decimal characters. (D:Value,Width;)
  244.       Value is converted and written to the font file as a decimal number.
  245.       Width is an optional value expression giving the minimum number
  246.       of characters to be used to express the decimal number.
  247.       If omitted, only as many characters as necessary are output.
  248.       If fewer characters are necessary than specifed in Width,
  249.       spaces are added to the beginning of the number to make up the
  250.       width.
  251.   Y - text, added as is into the font file. (Y:Text;)
  252.       Text must be enclosed in double quotes.
  253.   Q - Text string, previously assigned by either type T or Q.
  254.       (Q:Varid,Start,Length;)  Start and Length are optional value
  255.       fields which can be used to save a sub-string.
  256.  
  257. *************************************************************************
  258.  
  259.   The optional modifier 'S' may immediately follow any of the type codes
  260.   I,W,H,B to indicate that the high and low order bytes
  261.   of every pair of bytes is swapped.
  262.  
  263. *************************************************************************
  264.  
  265. "Varid" is a two character variable name, of which the first
  266.     character must be alphabetic. Some variables are predetermined
  267.     by Bitfont.  Additional variables and their values
  268.     may be freely assigned by the user in the configuration file.
  269.     The values of variables may be either integers or character strings.
  270.     Once a value is assigned, a Varid may be used in any subsequent
  271.     value expression.
  272.  
  273.     Predetermined Varids are:
  274.  
  275.     FH - Font cell height, maximum height of a character in the font.
  276.     FW - Font cell width, maximum width of a character in the font.
  277.     BL - Baseline distance, distance from top of cell to a reference line.
  278.     OO - (letters, not numbers) Font Overall Orientation.
  279.          (0=portrait, 1=landscape)
  280.     AA - Indicates whether horizontally adjacent dots are allowed.
  281.          AA = 0 means adjacent dots are not allowed.
  282.          AA = 1 means adjacent dots are allowed (normal).
  283.     FI - Input font file name, including the path, if any needed.
  284.     FO - Output font file name, including the path, if any needed.
  285.     CF - Configuration file name. (cannot be used)
  286.     FP - File Position, current byte of file, starting at 0.
  287.     FS - File Size.  (FP and FS are only available for examination.)
  288.     PR - Printer device.
  289.     QP - The Palette to use for Design screen, if using an IBM CGA.
  290.     Q0 - Background color on the design screen.
  291.     Q1 - Color of borders, pin points and text on the design screen.
  292.     Q2 - Color of the character dot on the design screen.
  293.     Q3 - Color of the pen icon on the design screen.
  294.  
  295.     (Following variables have separate values for each selected character:)
  296.  
  297.     CC - Character code.
  298.     CW - Width of character in dots.
  299.     CH - Height of character in dots.
  300.     DL - The total length of the bit data string.
  301.     DC - The length of data actually loaded in the bit data string.
  302.     DF - Format of character bit data.
  303.          DF = 1 is Laser or CRT format.
  304.          DF = 2 is Wire Matrix format.
  305.          DF = 3 is Wire Matrix format, separated by passes.
  306.     PW - Number of print head wires used.
  307.     XD - Horizontal Graphics Print Density.
  308.          XD = 1 is single, draft density.
  309.          XD = 2 is double density.
  310.          XD = 4 is quad density.
  311.     YD - Number of overlapping print head passes. Normal is 1 pass.
  312.          (Vertical density)
  313.     OR - Orientation (0=portrait, 1=landscape)
  314.     LO - Left offset, distance in dots from left edge of font cell to
  315.          left edge of character.
  316.     TO - Top offset, distance in dots from baseline to top edge of
  317.          character.
  318.  
  319. *************************************************************************
  320.  
  321. "Length" is a value, and may be:
  322.  - explicitly defined in decimal.
  323.  - explicitly defined as $ followed by hexadecimal number.
  324.  - a value expression.
  325.  
  326. *************************************************************************
  327.  
  328. "Name" is an optional character string, and if given, is displayed
  329.     and used for prompting for values on the specifications screen.
  330.  
  331. *************************************************************************
  332.  
  333. "Value" may be:
  334.   - a previously assigned Varid.
  335.   - a decimal number.
  336.   - a one or two byte hexadecimal number, preceded by a $.
  337.   - an expression, using any of the above and integer operators + - * /
  338.  
  339.   Note that a value expression is strictly evaluated left to right,
  340.   not using the normal algebraic rules in which * and / have precedence.
  341.   Parentheses are not allowed; however, complicated expressions may
  342.   be implemented by using extra Assignment statements and creating
  343.   your own temporary variables.
  344.  
  345.   If a Varid use has not been assigned, the value used for that Varid
  346.   is zero.  If a Varid has been assigned to Text, then the value
  347.   used for that Varid is the length of the Text.
  348.  
  349. *************************************************************************
  350.  
  351. Here are some examples showing the of correspondence of dots
  352. to bytes and bits of a character data string.
  353. In the sample arrays, each dot is represented by byte.bit,
  354. where the first byte is byte 0, and the most significant bit is bit 7.
  355.  
  356. *************************************************************************
  357.  
  358. In the Laser or CRT data format, a character of width 12 dots,
  359. height 10 dots is as follows:
  360.  
  361.   0.7   0.6   0.5   0.4   0.3   0.2   0.1   0.0   1.7   1.6   1.5   1.4
  362.   2.7   2.6   2.5   2.4   2.3   2.2   2.1   2.0   3.7   3.6   3.5   3.4
  363.   4.7   4.6   4.5   4.4   4.3   4.2   4.1   4.0   5.7   5.6   5.5   5.4
  364.   6.7   6.6   6.5   6.4   6.3   6.2   6.1   6.0   7.7   7.6   7.5   7.4
  365.   8.7   8.6   8.5   8.4   8.3   8.2   8.1   8.0   9.7   9.6   9.5   9.4
  366.  10.7  10.6  10.5  10.4  10.3  10.2  10.1  10.0  11.7  11.6  11.5  11.4
  367.  12.7  12.6  12.5  12.4  12.3  12.2  12.1  12.0  13.7  13.6  13.5  13.4
  368.  14.7  14.6  14.5  14.4  14.3  14.2  14.1  14.0  15.7  15.6  15.5  15.4
  369.  16.7  16.6  16.5  16.4  16.3  16.2  16.1  16.0  17.7  17.6  17.5  17.4
  370.  18.7  18.6  18.5  18.4  18.3  18.2  18.1  18.0  19.7  19.6  19.5  19.4
  371.  
  372. *************************************************************************
  373.  
  374. In the Wire Matrix format, one pass printing, a character 8 dots high
  375. and 12 dots wide would be as follows:
  376.  
  377.   0.7   1.7   2.7   3.7   4.7   5.7   6.7   7.7   8.7   9.7  10.7  11.7
  378.   0.6   1.6   2.6   3.6   4.6   5.6   6.6   7.6   8.6   9.6  10.6  11.6
  379.   0.5   1.5   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5  10.5  11.5
  380.   0.4   1.4   2.4   3.4   4.4   5.4   6.4   7.4   8.4   9.4  10.4  11.4
  381.   0.3   1.3   2.3   3.3   4.3   5.3   6.3   7.3   8.3   9.3  10.3  11.3
  382.   0.2   1.2   2.2   3.2   4.2   5.2   6.2   7.2   8.2   9.2  10.2  11.2
  383.   0.1   1.1   2.1   3.1   4.1   5.1   6.1   7.1   8.1   9.1  10.1  11.1
  384.   0.0   1.0   2.0   3.0   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0
  385.  
  386. *************************************************************************
  387.  
  388. In the Wire Matrix format, one pass printing, a character 10 dots high
  389. and 12 dots wide would be as follows:
  390.  
  391.   0.7   2.7   4.7   6.7   8.7  10.7  12.7  14.7  16.7  18.7  20.7  22.7
  392.   0.6   2.6   4.6   6.6   8.6  10.6  12.6  14.6  16.6  18.6  20.6  22.6
  393.   0.5   2.5   4.5   6.5   8.5  10.5  12.5  14.5  16.5  18.5  20.5  22.5
  394.   0.4   2.4   4.4   6.4   8.4  10.4  12.4  14.4  16.4  18.4  20.4  22.4
  395.   0.3   2.3   4.3   6.3   8.3  10.3  12.3  14.3  16.3  18.3  20.3  22.3
  396.   0.2   2.2   4.2   6.2   8.2  10.2  12.2  14.2  16.2  18.2  20.2  22.2
  397.   0.1   2.1   4.1   6.1   8.1  10.1  12.1  14.1  16.1  18.1  20.1  22.1
  398.   0.0   2.0   4.0   6.0   8.0  10.0  12.0  14.0  16.0  18.0  20.0  22.0
  399.   1.7   3.7   5.7   7.7   9.7  11.7  13.7  15.7  17.7  19.7  21.7  23.7
  400.   1.6   3.6   5.6   7.6   9.6  11.6  13.6  15.6  16.6  19.6  21.6  23.6
  401.  
  402. *************************************************************************
  403.  
  404. In the Wire Matrix format, one pass printing, using 8 wires,
  405. and separated by passes, a character 10 dots high
  406. and 12 dots wide would be as follows:
  407.  
  408.   0.7   1.7   2.7   3.7   4.7   5.7   6.7   7.7   8.7   9.7  10.7  11.7
  409.   0.6   1.6   2.6   3.6   4.6   5.6   6.6   7.6   8.6   9.6  10.6  11.6
  410.   0.5   1.5   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5  10.5  11.5
  411.   0.4   1.4   2.4   3.4   4.4   5.4   6.4   7.4   8.4   9.4  10.4  11.4
  412.   0.3   1.3   2.3   3.3   4.3   5.3   6.3   7.3   8.3   9.3  10.3  11.3
  413.   0.2   1.2   2.2   3.2   4.2   5.2   6.2   7.2   8.2   9.2  10.2  11.2
  414.   0.1   1.1   2.1   3.1   4.1   5.1   6.1   7.1   8.1   9.1  10.1  11.1
  415.   0.0   1.0   2.0   3.0   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0
  416.  12.7  13.7  14.7  15.7  16.7  17.7  18.7  19.7  20.7  21.7  22.7  23.7
  417.  12.6  13.6  14.6  15.6  16.6  17.6  18.6  19.6  20.6  21.6  22.6  23.6
  418.  
  419. *************************************************************************
  420.  
  421. In the Wire Matrix format, two pass printing, using 8 wires,
  422. and separated by passes, a character 19 dots high
  423. and 12 dots wide would be as follows:
  424.  
  425.   0.7   1.7   2.7   3.7   4.7   5.7   6.7   7.7   8.7   9.7  10.7  11.7
  426.  12.7  13.7  14.7  15.7  16.7  17.7  18.7  19.7  20.7  21.7  22.7  23.7
  427.   0.6   1.6   2.6   3.6   4.6   5.6   6.6   7.6   8.6   9.6  10.6  11.6
  428.  12.6  13.6  14.6  15.6  16.6  17.6  18.6  19.6  20.6  21.6  22.6  23.6
  429.   0.5   1.5   2.5   3.5   4.5   5.5   6.5   7.5   8.5   9.5  10.5  11.5
  430.  12.5  13.5  14.5  15.5  16.5  17.5  18.5  19.5  20.5  21.5  22.5  23.5
  431.   0.4   1.4   2.4   3.4   4.4   5.4   6.4   7.4   8.4   9.4  10.4  11.4
  432.  12.4  13.4  14.4  15.4  16.4  17.4  18.4  19.4  20.4  21.4  22.4  23.4
  433.   0.3   1.3   2.3   3.3   4.3   5.3   6.3   7.3   8.3   9.3  10.3  11.3
  434.  12.3  13.3  14.3  15.3  16.3  17.3  18.3  19.3  20.3  21.3  22.3  23.3
  435.   0.2   1.2   2.2   3.2   4.2   5.2   6.2   7.2   8.2   9.2  10.2  11.2
  436.  12.2  13.2  14.2  15.2  16.2  17.2  18.2  19.2  20.2  21.2  22.2  23.2
  437.   0.1   1.1   2.1   3.1   4.1   5.1   6.1   7.1   8.1   9.1  10.1  11.1
  438.  12.1  13.1  14.1  15.1  16.1  17.1  18.1  19.1  20.1  21.1  22.1  23.1
  439.   0.0   1.0   2.0   3.0   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0
  440.  12.0  13.0  14.0  15.0  16.0  17.0  18.0  19.0  20.0  21.0  22.0  23.0
  441.  24.7  25.7  26.7  27.7  28.7  29.7  30.7  31.7  32.7  33.7  34.7  35.7
  442.  36.7  37.7  38.7  39.7  40.7  41.7  42.7  43.7  44.7  45.7  46.7  47.7
  443.  24.6  25.6  26.6  27.6  28.6  29.6  30.6  31.6  32.6  33.6  34.6  35.6
  444.  
  445. *************************************************************************
  446.  
  447. And if you still haven't gotten the idea, and wish to be even more
  448. confused, in the Wire Matrix format, three pass printing, using 9 wires,
  449. and separated by passes, a character 28 dots high and 12 dots wide
  450. would be as follows: (Needless to say, I did not key these in by hand.)
  451.  
  452.   0.7   2.7   4.7   6.7   8.7  10.7  12.7  14.7  16.7  18.7  20.7  22.7
  453.  24.7  26.7  28.7  30.7  32.7  34.7  36.7  38.7  40.7  42.7  44.7  46.7
  454.  48.7  50.7  52.7  54.7  56.7  58.7  60.7  62.7  64.7  66.7  68.7  70.7
  455.   0.6   2.6   4.6   6.6   8.6  10.6  12.6  14.6  16.6  18.6  20.6  22.6
  456.  24.6  26.6  28.6  30.6  32.6  34.6  36.6  38.6  40.6  42.6  44.6  46.6
  457.  48.6  50.6  52.6  54.6  56.6  58.6  60.6  62.6  64.6  66.6  68.6  70.6
  458.   0.5   2.5   4.5   6.5   8.5  10.5  12.5  14.5  16.5  18.5  20.5  22.5
  459.  24.5  26.5  28.5  30.5  32.5  34.5  36.5  38.5  40.5  42.5  44.5  46.5
  460.  48.5  50.5  52.5  54.5  56.5  58.5  60.5  62.5  64.5  66.5  68.5  70.5
  461.   0.4   2.4   4.4   6.4   8.4  10.4  12.4  14.4  16.4  18.4  20.4  22.4
  462.  24.4  26.4  28.4  30.4  32.4  34.4  36.4  38.4  40.4  42.4  44.4  46.4
  463.  48.4  50.4  52.4  54.4  56.4  58.4  60.4  62.4  64.4  66.4  68.4  70.4
  464.   0.3   2.3   4.3   6.3   8.3  10.3  12.3  14.3  16.3  18.3  20.3  22.3
  465.  24.3  26.3  28.3  30.3  32.3  34.3  36.3  38.3  40.3  42.3  44.3  46.3
  466.  48.3  50.3  52.3  54.3  56.3  58.3  60.3  62.3  64.3  66.3  68.3  70.3
  467.   0.2   2.2   4.2   6.2   8.2  10.2  12.2  14.2  16.2  18.2  20.2  22.2
  468.  24.2  26.2  28.2  30.2  32.2  34.2  36.2  38.2  40.2  42.2  44.2  46.2
  469.  48.2  50.2  52.2  54.2  56.2  58.2  60.2  62.2  64.2  66.2  68.2  70.2
  470.   0.1   2.1   4.1   6.1   8.1  10.1  12.1  14.1  16.1  18.1  20.1  22.1
  471.  24.1  26.1  28.1  30.1  32.1  34.1  36.1  38.1  40.1  42.1  44.1  46.1
  472.  48.1  50.1  52.1  54.1  56.1  58.1  60.1  62.1  64.1  66.1  68.1  70.1
  473.   0.0   2.0   4.0   6.0   8.0  10.0  12.0  14.0  16.0  18.0  20.0  22.0
  474.  24.0  26.0  28.0  30.0  32.0  34.0  36.0  38.0  40.0  42.0  44.0  46.0
  475.  48.0  50.0  52.0  54.0  56.0  58.0  60.0  62.0  64.0  66.0  68.0  70.0
  476.   1.7   3.7   5.7   7.7   9.7  11.7  13.7  15.7  17.7  19.7  21.7  23.7
  477.  25.7  27.7  29.7  31.7  33.7  35.7  37.7  39.7  41.7  43.7  45.7  47.7
  478.  49.7  51.7  53.7  55.7  57.7  59.7  61.7  63.7  65.7  67.7  69.7  71.7
  479.  72.7  74.7  76.7  78.7  80.7  82.7  84.7  86.7  88.7  90.7  92.7  94.7
  480.  
  481. *************************************************************************
  482.